package com.quectel.core.module.household.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author zhangheng
 * @email nolan.zhang@quectel.com
 * @date 2023/03/10 11:46
 */
@Data
@Schema
public class HouseholdFollowLogDto implements Serializable {

    /**
     * id
     */
    @Schema(description = "id")
    private Long id;

    /**
     * 租户id
     */
    @Schema(description = "租户id")
    private Long tenantId;

    /**
     * 小区id
     */
    @Schema(description = "小区id")
    private Long villageId;

    /**
     * 住户id
     */
    @Schema(description = "住户id")
    @NotNull
    private Long householdId;

    /**
     * 跟进来源:1后台管理员2员工端3网格端...
     */
    @Schema(description = "跟进来源:1后台管理员2员工端3网格端...")
    private Byte sourceType;

    /**
     * 责任人
     */
    @Schema(description = "责任人")
    private String followerName;

    /**
     * 责任人手机号
     */
    @Schema(description = "责任人手机号")
    private String followerMobile;

    /**
     * 跟进方式
     */
    @Schema(description = "跟进方式")
    @NotNull(message = "跟进方式不能为空")
    private Byte askMethod;

    /**
     * 跟进时间
     */
    @Schema(description = "跟进时间")
    @NotNull(message = "跟进时间不能为空")
    private Date askTime;

    /**
     * 情绪是否稳定0否1是
     */
    @Schema(description = "情绪是否稳定0否1是")
    @NotNull(message = "情绪状况不能为空")
    private Byte stableFlag;

    /**
     * 社会矛盾json arr["1","2"]
     */
    @Schema(description = "社会矛盾json arr[/\"1/\",/\"2/\"]")
    @NotBlank(message = "社会矛盾不能为空")
    private String contradictionJsonArr;

    /**
     * 当前情况描述
     */
    @Schema(description = "当前情况描述")
    @NotBlank(message = "情况描述不能为空")
    private String description;

    /**
     * 情况研判
     */
    @Schema(description = "情况研判")
    @NotBlank(message = "情况研判不能为空")
    private String estimateOfSituation;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /************非数据库字段 start ************/

    /**
     * 矛盾名称列表
     */
    @Schema(description = "矛盾名称列表")
    private List<String> contradictionNameList;

    /************非数据库字段 end **************/
}
